using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class UI_ScrollingRawImage : MonoBehaviour
{
	[SerializeField]
	private RawImage _img;

	[SerializeField]
	private float _x;

	[SerializeField]
	private float _y;

	[SerializeField]
	private bool AffectedBySimplifyVFX;

	[Header("Random Controls")]
	[SerializeField]
	private bool SlowlyRandom;

	[SerializeField]
	private float _xMin;

	[SerializeField]
	private float _yMin;

	[SerializeField]
	private float _xMax;

	[SerializeField]
	private float _yMax;

	[SerializeField]
	private float RandomSpeed;

	private bool simplifyvfx;

	private void Awake()
	{
		if (SlowlyRandom)
		{
			StartCoroutine(RandomChange());
		}
		if (AffectedBySimplifyVFX)
		{
			StartCoroutine(SettingsCheckTick());
		}
	}

	private void Update()
	{
		if (!simplifyvfx)
		{
			_img.uvRect = new Rect(_img.uvRect.position + new Vector2(_x, _y) * Time.unscaledDeltaTime, _img.uvRect.size);
		}
	}

	private IEnumerator RandomChange()
	{
		if (!simplifyvfx)
		{
			_x = Mathf.Lerp(_x, Random.Range(_xMin, _xMax), RandomSpeed * Time.unscaledDeltaTime);
			_y = Mathf.Lerp(_y, Random.Range(_yMin, _yMax), RandomSpeed * Time.unscaledDeltaTime);
		}
		yield return new WaitForSecondsRealtime(0.25f);
		StartCoroutine(RandomChange());
	}

	private IEnumerator SettingsCheckTick()
	{
		yield return new WaitForSecondsRealtime(0.25f);
		simplifyvfx = SettingsManager.Instance.GetBoolSettingValue("SimpleVFX");
		StartCoroutine(SettingsCheckTick());
	}
}
